2026-11-06 11:08:58.029 [debug] QUERY OK source="config_file_versions" db=0.5ms queue=0.6ms idle=931.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:08:58.034 [debug] QUERY OK source="parameter_templates" db=0.4ms queue=0.7ms idle=874.7ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:08:58.076 [debug] QUERY OK source="tms_terminals" db=2.5ms queue=0.5ms idle=43.8ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 2026-11-06 11:08:58.081 [debug] QUERY OK source="filter_usage" db=0.6ms queue=0.5ms idle=45.8ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 2026-11-06 11:08:59.310 [debug] Tzdata polling for update. 2026-11-06 11:09:00.166 [debug] Tzdata polling shows the loaded tz database is up to date. 2026-11-06 11:09:58.049 [debug] QUERY OK source="config_file_versions" db=1.3ms idle=675.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:09:58.051 [debug] QUERY OK source="parameter_templates" db=1.0ms idle=0.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:09:58.185 [debug] QUERY OK source="parameter_push_logs" db=148.9ms queue=0.6ms idle=708.2ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`error_message` = ?, p0.`updated_at` = ? WHERE ((p0.`status` = 'sent') AND (p0.`inserted_at` < ?)) ["timed_out", "no device acknowledgment within 5 min", ~N[2026-11-06 07:09:58], ~N[2026-11-06 07:04:58]] ↳ TmsCore.TerminalManagement.PushLogSweeper.sweep/0, at: lib/tms_core/terminal_management/push_log_sweeper.ex:52 2026-11-06 11:10:17.922 [debug] heartbeat in: 28260702280001 (1007 bytes) 2026-11-06 11:10:17.928 [debug] serial=28260702280001 event=heartbeat heartbeat: 28260702280001 MoreFun SR800 status=online battery=49 network=online cpu=0 | app 3.9.0, param 1.0.0, emv 1.0.1, keys none 2026-11-06 11:10:17.933 [debug] serial=28260702280001 event=heartbeat StatusIntake: 28260702280001 (MoreFun SR800) gaps: keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.0 -> target 3.8.5) 2026-11-06 11:10:17.970 [debug] serial=28260702280001 event=push QUERY OK source="tms_terminals" db=0.3ms queue=0.4ms idle=575.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["28260702280001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:10:18.034 [debug] serial=28260702280001 config_type=application event=push QUERY OK source="parameter_push_logs" db=28.0ms queue=0.6ms idle=559.8ms SELECT TRUE FROM `parameter_push_logs` AS p0 WHERE ((((p0.`terminal_id` = ?) AND (p0.`config_type` = ?)) AND (p0.`inserted_at` >= ?)) AND p0.`status` IN ('pending','sent')) LIMIT 1 [64, "application", ~N[2026-11-06 06:40:17]] ↳ anonymous fn/6 in TmsCore.TerminalManagement.PushLane.Worker.handle_cast/2, at: lib/tms_core/terminal_management/push_lane/worker.ex:87 2026-11-06 11:10:18.114 [debug] QUERY OK source="tms_terminals" db=0.5ms idle=142.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["28260702280001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:10:18.118 [debug] QUERY OK db=0.7ms idle=85.4ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:10:18.148 [debug] QUERY OK db=0.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [64, "organization_id", "2026-11-06T15:09:36Z", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:10:18.150 [debug] QUERY OK source="tms_terminal_status_items" db=0.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T15:09:36Z", "online", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "status", 307904, "Battery level", "2026-11-06T15:09:36Z", "49", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "battery", 307904, "Network connectivity", "2026-11-06T15:09:36Z", "online", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "network", 307904, "CPU usage percentage", "2026-11-06T15:09:36Z", "0", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "cpu", 307904, "Current parameters version", "2026-11-06T15:09:36Z", "1.0.0", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "parameter_config", 307904, "Current EMV config version", "2026-11-06T15:09:36Z", "1.0.1", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "emv_config", 307904, "Current keys config version", "2026-11-06T15:09:36Z", "", ~N[2026-11-06 07:10:18], ~N[2026-11-06 07:10:18], "keys_config", 307904, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:10:18.225 [debug] QUERY OK db=75.2ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:10:18.238 [debug] QUERY OK source="app_upgrade_device_statuses" db=0.5ms queue=2.1ms idle=121.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["28260702280001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:10:18.268 [debug] request_id=65382914 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.4ms queue=0.8ms idle=41.7ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65382914"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:10:18.273 [debug] request_id=65382914 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:10:18.268903Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "65382914", "status" => "failed", "timestamp" => 1793977776539, "type" => "tms_response"}, request_id: "65382914", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:10:18.544 [debug] request_id=65382978 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=1.7ms idle=145.6ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65382978"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:10:18.544 [debug] request_id=65382978 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:10:18.544805Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "65382978", "status" => "failed", "timestamp" => 1793977776646, "type" => "tms_response"}, request_id: "65382978", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:10:18.546 [debug] request_id=65383010 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.6ms queue=0.1ms idle=99.9ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65383010"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:10:18.547 [debug] request_id=65383010 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:10:18.546869Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "65383010", "status" => "failed", "timestamp" => 1793977776752, "type" => "tms_response"}, request_id: "65383010", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:10:23.250 [debug] QUERY OK source="tms_terminals" db=208.4ms queue=0.8ms idle=634.8ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "SR800", ~N[2026-11-06 07:10:17], "MoreFun", "3.9.0", "1.0.0", "1.0.0", "1.0.1", "", 64] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:10:58.053 [debug] QUERY OK source="config_file_versions" db=1.4ms idle=501.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:10:58.054 [debug] QUERY OK source="parameter_templates" db=0.6ms idle=0.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:10:58.174 [debug] QUERY OK source="parameter_push_logs" db=144.5ms idle=527.1ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`error_message` = ?, p0.`updated_at` = ? WHERE ((p0.`status` = 'sent') AND (p0.`inserted_at` < ?)) ["timed_out", "no device acknowledgment within 5 min", ~N[2026-11-06 07:10:58], ~N[2026-11-06 07:05:58]] ↳ TmsCore.TerminalManagement.PushLogSweeper.sweep/0, at: lib/tms_core/terminal_management/push_log_sweeper.ex:52 2026-11-06 11:11:57.987 [debug] heartbeat in: 98251226730001 (1206 bytes) 2026-11-06 11:11:57.988 [debug] serial=98251226730001 event=heartbeat heartbeat: 98251226730001 MoreFun MF919 status=online battery=34 network=online cpu=0 | app 3.9.3-SNAPSHOT, param 1.0.0, emv 3.0.0, keys none 2026-11-06 11:11:57.988 [debug] serial=98251226730001 event=heartbeat StatusIntake: 98251226730001 (MoreFun MF919) gaps: emv_config outdated (device 3.0.0 -> target 1.0.1), keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.3-SNAPSHOT -> target 3.8.5) 2026-11-06 11:11:57.991 [debug] serial=98251226730001 event=push QUERY OK source="tms_terminals" db=1.9ms idle=310.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:11:58.150 [debug] QUERY OK source="parameter_push_logs" db=117.9ms idle=41.0ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`error_message` = ?, p0.`updated_at` = ? WHERE ((p0.`status` = 'sent') AND (p0.`inserted_at` < ?)) ["timed_out", "no device acknowledgment within 5 min", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:06:58]] ↳ TmsCore.TerminalManagement.PushLogSweeper.sweep/0, at: lib/tms_core/terminal_management/push_log_sweeper.ex:52 2026-11-06 11:11:58.150 [debug] QUERY OK source="config_file_versions" db=0.5ms queue=93.9ms idle=0.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:11:58.151 [debug] QUERY OK source="parameter_templates" db=0.5ms idle=0.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:11:58.340 [debug] QUERY OK source="tms_terminals" db=0.6ms idle=187.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:11:58.340 [debug] QUERY OK db=0.3ms idle=0.3ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:11:58.511 [debug] serial=98251226730001 config_type=emv_config event=push QUERY OK source="parameter_push_logs" db=520.4ms idle=262.9ms SELECT TRUE FROM `parameter_push_logs` AS p0 WHERE ((((p0.`terminal_id` = ?) AND (p0.`config_type` = ?)) AND (p0.`inserted_at` >= ?)) AND p0.`status` IN ('pending','sent')) LIMIT 1 [33, "emv_config", ~N[2026-11-06 06:41:57]] ↳ anonymous fn/6 in TmsCore.TerminalManagement.PushLane.Worker.handle_cast/2, at: lib/tms_core/terminal_management/push_lane/worker.ex:87 2026-11-06 11:11:58.544 [debug] QUERY OK db=202.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-11-06T07:11:57Z", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:11:58.546 [debug] QUERY OK source="tms_terminal_status_items" db=0.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T07:11:57Z", "online", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "status", 307906, "Battery level", "2026-11-06T07:11:57Z", "34", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "battery", 307906, "Network connectivity", "2026-11-06T07:11:57Z", "online", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "network", 307906, "CPU usage percentage", "2026-11-06T07:11:57Z", "0", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "cpu", 307906, "Current parameters version", "2026-11-06T07:11:57Z", "1.0.0", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "parameter_config", 307906, "Current EMV config version", "2026-11-06T07:11:57Z", "3.0.0", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "emv_config", 307906, "Current keys config version", "2026-11-06T07:11:57Z", "", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58], "keys_config", 307906, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:11:58.660 [debug] serial=98251226730001 config_type=emv_config event=push QUERY OK db=138.6ms queue=0.5ms idle=8.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`config_type`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_model`,`device_vendor`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "606a095977377064cc7caf05ee719ecd900044d5e6b00733519810ae01d6af5d", 2563, "emv_config", 17947, ~U[2026-11-06 07:11:58Z], "priv/ota/l3/6/l3config.zip", 33, "full", "MF919", "MoreFun", "missing_version", "1.0.1", ~N[2026-11-06 07:11:58], ~N[2026-11-06 07:11:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:512 2026-11-06 11:11:58.660 [debug] serial=98251226730001 config_type=emv_config event=push MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/l3/6/l3config.zip", "requestId" => 2563, "type" => "tms_command", "version" => "1.0.1"} 2026-11-06 11:11:58.660 [debug] request_id=2563 serial=98251226730001 config_type=emv_config event=push push out: UPDATE_L3_CONFIG payload {"command":"UPDATE_L3_CONFIG","downloadUrl":"http://demo.ctrmv.com:4059/ota/l3/6/l3config.zip","requestId":2563,"type":"tms_command","version":"1.0.1"} 2026-11-06 11:11:58.697 [debug] QUERY OK db=151.0ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:11:58.707 [debug] QUERY OK source="app_upgrade_device_statuses" db=0.5ms queue=8.4ms idle=0.0ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:11:58.745 [debug] request_id=2563 serial=98251226730001 config_type=emv_config event=push QUERY OK source="parameter_push_logs" db=77.0ms queue=0.6ms idle=7.3ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`sent_at` = ? WHERE ((p0.`id` = ?) AND (p0.`status` = 'pending')) ["sent", ~U[2026-11-06 07:11:58Z], 83438] ↳ TmsCore.TerminalManagement.AutoPushService.publish_and_log/6, at: lib/tms_core/terminal_management/auto_push_service.ex:776 2026-11-06 11:11:58.773 [debug] serial=98251226730001 config_type=application event=push QUERY OK source="parameter_push_logs" db=27.2ms idle=1.3ms SELECT TRUE FROM `parameter_push_logs` AS p0 WHERE ((((p0.`terminal_id` = ?) AND (p0.`config_type` = ?)) AND (p0.`inserted_at` >= ?)) AND p0.`status` IN ('pending','sent')) LIMIT 1 [33, "application", ~N[2026-11-06 06:41:58]] ↳ anonymous fn/6 in TmsCore.TerminalManagement.PushLane.Worker.handle_cast/2, at: lib/tms_core/terminal_management/push_lane/worker.ex:87 2026-11-06 11:11:58.939 [debug] request_id=2563 serial=98251226730001 event=push push result: 98251226730001 request_id=2563 accepted, download starting 2026-11-06 11:11:58.940 [debug] request_id=2563 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.8ms idle=182.8ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["2563"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:11:58.940 [debug] request_id=2563 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:11:58.940801Z], response: %{"message" => "L3 configuration update started", "requestId" => "2563", "status" => "initiated", "timestamp" => 1793949118812, "type" => "tms_response"}, request_id: "2563", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:11:59.122 [debug] request_id=65386530 serial=98251226730001 event=push push result: 98251226730001 request_id=65386530 accepted, download starting 2026-11-06 11:11:59.123 [debug] request_id=65386530 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms queue=0.5ms idle=349.4ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65386530"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:11:59.124 [debug] request_id=65386530 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:11:59.123972Z], response: %{"message" => "L3 configuration update started", "requestId" => "65386530", "status" => "initiated", "timestamp" => 1793949118846, "type" => "tms_response"}, request_id: "65386530", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:12:02.579 [debug] request_id=65386530 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.9ms queue=0.2ms idle=854.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65386530"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:02.579 [debug] request_id=65386530 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:12:02.579166Z], response: %{"message" => "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", "requestId" => "65386530", "status" => "failed", "timestamp" => 1793949122447, "type" => "tms_response"}, request_id: "65386530", error_message: "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", device_serial: "98251226730001"} 2026-11-06 11:12:03.087 [debug] QUERY OK source="tms_terminals" db=26.9ms idle=330.2ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "MF919", ~N[2026-11-06 07:11:57], "MoreFun", "3.9.3-SNAPSHOT", "1.0.0", "1.0.0", "3.0.0", "", 33] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:12:05.745 [debug] request_id=2563 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms idle=989.8ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["2563"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:05.745 [debug] request_id=2563 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-11-06 07:12:05.745216Z], response: %{"message" => "Update success: emv_config v1.0.1", "requestId" => "2563", "status" => "success", "timestamp" => 1793949125591, "type" => "tms_response"}, request_id: "2563", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:12:41.304 [debug] heartbeat in: 28260702280001 (1007 bytes) 2026-11-06 11:12:41.304 [debug] serial=28260702280001 event=heartbeat heartbeat: 28260702280001 MoreFun SR800 status=online battery=49 network=online cpu=0 | app 3.9.0, param 1.0.0, emv 1.0.1, keys none 2026-11-06 11:12:41.304 [debug] serial=28260702280001 event=heartbeat StatusIntake: 28260702280001 (MoreFun SR800) gaps: keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.0 -> target 3.8.5) 2026-11-06 11:12:41.305 [debug] serial=28260702280001 event=push PushLane: skipping keys_config re-push for 28260702280001 (push still in flight) 2026-11-06 11:12:41.305 [debug] serial=28260702280001 event=push PushLane: skipping application re-push for 28260702280001 (push still in flight) 2026-11-06 11:12:42.012 [debug] request_id=55288771 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.4ms idle=165.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55288771"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:42.012 [debug] request_id=55288771 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:12:42.012281Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "55288771", "status" => "failed", "timestamp" => 1793977920307, "type" => "tms_response"}, request_id: "55288771", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:12:42.315 [debug] request_id=41846276 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=1.9ms queue=1.4ms idle=418.4ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["41846276"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:42.316 [debug] request_id=41846276 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:12:42.315877Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "41846276", "status" => "failed", "timestamp" => 1793977920418, "type" => "tms_response"}, request_id: "41846276", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:12:42.318 [debug] request_id=65388610 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.7ms queue=0.3ms idle=304.9ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65388610"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:42.318 [debug] request_id=65388610 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:12:42.318314Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "65388610", "status" => "failed", "timestamp" => 1793977920528, "type" => "tms_response"}, request_id: "65388610", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:12:43.102 [debug] QUERY OK source="tms_terminals" db=33.5ms idle=218.6ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "SR800", ~N[2026-11-06 07:12:41], "MoreFun", "3.9.0", "1.0.0", "1.0.0", "1.0.1", "", 64] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:12:50.508 [debug] heartbeat in: 98251226730001 (1196 bytes) 2026-11-06 11:12:50.508 [debug] serial=98251226730001 event=heartbeat heartbeat: 98251226730001 MoreFun MF919 status=online battery=35 network=online cpu=0 | app 3.9.3-SNAPSHOT, param none, emv none, keys none 2026-11-06 11:12:50.508 [debug] serial=98251226730001 event=heartbeat StatusIntake: 98251226730001 (MoreFun MF919) gaps: parameter missing (device none -> target 1.0.0), emv_config missing (device none -> target 1.0.1), keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.3-SNAPSHOT -> target 3.8.5) 2026-11-06 11:12:50.508 [debug] serial=98251226730001 event=push PushLane: skipping emv_config re-push for 98251226730001 (push still in flight) 2026-11-06 11:12:50.508 [debug] serial=98251226730001 event=push PushLane: skipping keys_config re-push for 98251226730001 (push still in flight) 2026-11-06 11:12:50.508 [debug] serial=98251226730001 event=push PushLane: skipping application re-push for 98251226730001 (push still in flight) 2026-11-06 11:12:50.511 [debug] serial=98251226730001 event=push QUERY OK source="tms_terminals" db=2.2ms idle=642.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:12:50.517 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_template_values" db=0.5ms queue=0.3ms idle=601.6ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/6, at: lib/tms_core/terminal_management/auto_push_service.ex:93 2026-11-06 11:12:50.528 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_definitions" db=0.8ms queue=0.8ms idle=15.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/6, at: lib/tms_core/terminal_management/auto_push_service.ex:93 2026-11-06 11:12:50.540 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_terminal" db=3.6ms queue=0.6ms idle=18.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:175 2026-11-06 11:12:50.570 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_merchant" db=0.2ms queue=26.4ms idle=14.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10450] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:186 2026-11-06 11:12:50.576 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK db=5.4ms queue=0.8ms idle=643.8ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["107611322800000"] 2026-11-06 11:12:50.581 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_terminal_data" db=0.4ms queue=0.7ms idle=40.3ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["1322811044"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:272 2026-11-06 11:12:50.586 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="address" db=0.7ms queue=1.4ms idle=14.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [10739] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:88 2026-11-06 11:12:50.651 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK db=56.6ms queue=0.5ms idle=12.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`config_type`,`file_size`,`log_time`,`file_path`,`terminal_id`,`template_id`,`push_type`,`device_model`,`device_vendor`,`parameters_sent`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "23e1812fc6074bce8bfa8acb5989e58a161b9908b1b65d8e754b9d36f117c155", 2595, "parameter", 916, ~U[2026-11-06 07:12:50Z], "priv/ota/98251226730001/params.zip", 33, 10, "full", "MF919", "MoreFun", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "240", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", ...}, "missing_version", "1.0.0", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:406 2026-11-06 11:12:50.651 [debug] serial=98251226730001 config_type=parameter event=push MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 2595, "type" => "tms_command", "version" => "1.0.0"} 2026-11-06 11:12:50.652 [debug] request_id=2595 serial=98251226730001 config_type=parameter event=push push out: UPDATE_PARAMS payload {"command":"UPDATE_PARAMS","downloadUrl":"http://demo.ctrmv.com:4059/ota/98251226730001/params.zip","requestId":2595,"type":"tms_command","version":"1.0.0"} 2026-11-06 11:12:50.692 [debug] request_id=2595 serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_push_logs" db=39.4ms idle=65.8ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`sent_at` = ? WHERE ((p0.`id` = ?) AND (p0.`status` = 'pending')) ["sent", ~U[2026-11-06 07:12:50Z], 83444] ↳ TmsCore.TerminalManagement.AutoPushService.publish_and_log/6, at: lib/tms_core/terminal_management/auto_push_service.ex:776 2026-11-06 11:12:50.760 [debug] QUERY OK db=0.2ms idle=108.9ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:12:50.761 [debug] QUERY OK db=0.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-11-06T07:12:50Z", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:12:50.762 [debug] QUERY OK source="tms_terminal_status_items" db=0.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T07:12:50Z", "online", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "status", 307909, "Battery level", "2026-11-06T07:12:50Z", "35", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "battery", 307909, "Network connectivity", "2026-11-06T07:12:50Z", "online", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "network", 307909, "CPU usage percentage", "2026-11-06T07:12:50Z", "0", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "cpu", 307909, "Current parameters version", "2026-11-06T07:12:50Z", "", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "parameter_config", 307909, "Current EMV config version", "2026-11-06T07:12:50Z", "", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "emv_config", 307909, "Current keys config version", "2026-11-06T07:12:50Z", "", ~N[2026-11-06 07:12:50], ~N[2026-11-06 07:12:50], "keys_config", 307909, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:12:50.810 [debug] QUERY OK db=47.6ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:12:50.811 [debug] QUERY OK source="app_upgrade_device_statuses" db=1.1ms idle=118.5ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:12:50.863 [debug] request_id=55289155 serial=98251226730001 event=push push result: 98251226730001 request_id=55289155 accepted, download starting 2026-11-06 11:12:50.863 [debug] request_id=55289155 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.2ms idle=53.2ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55289155"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:50.863 [debug] request_id=55289155 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:12:50.863843Z], response: %{"message" => "L3 configuration update started", "requestId" => "55289155", "status" => "initiated", "timestamp" => 1793949170731, "type" => "tms_response"}, request_id: "55289155", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:12:51.050 [debug] request_id=2595 serial=98251226730001 event=push push result: 98251226730001 request_id=2595 accepted, download starting 2026-11-06 11:12:51.051 [debug] request_id=2595 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms queue=0.1ms idle=182.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["2595"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:51.052 [debug] request_id=2595 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:12:51.051819Z], response: %{"message" => "Parameter update started", "requestId" => "2595", "status" => "initiated", "timestamp" => 1793949170775, "type" => "tms_response"}, request_id: "2595", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:12:53.049 [debug] request_id=2595 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.5ms queue=0.8ms idle=175.3ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["2595"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:53.049 [debug] request_id=2595 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-11-06 07:12:53.049781Z], response: %{"message" => "Update success: parameter_config v1.0.0", "requestId" => "2595", "status" => "success", "timestamp" => 1793949172885, "type" => "tms_response"}, request_id: "2595", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:12:53.103 [debug] QUERY OK source="tms_terminals" db=32.8ms idle=149.6ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "MF919", ~N[2026-11-06 07:12:50], "MoreFun", "3.9.3-SNAPSHOT", "", "", "", "", 33] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:12:54.003 [debug] request_id=55289155 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.5ms idle=128.0ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55289155"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:12:54.004 [debug] request_id=55289155 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:12:54.004228Z], response: %{"message" => "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", "requestId" => "55289155", "status" => "failed", "timestamp" => 1793949173872, "type" => "tms_response"}, request_id: "55289155", error_message: "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", device_serial: "98251226730001"} 2026-11-06 11:12:58.153 [debug] QUERY OK source="config_file_versions" db=0.7ms idle=217.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:12:58.154 [debug] QUERY OK source="parameter_templates" db=0.5ms idle=0.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:12:58.167 [debug] QUERY OK source="parameter_push_logs" db=134.7ms idle=145.3ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`error_message` = ?, p0.`updated_at` = ? WHERE ((p0.`status` = 'sent') AND (p0.`inserted_at` < ?)) ["timed_out", "no device acknowledgment within 5 min", ~N[2026-11-06 07:12:58], ~N[2026-11-06 07:07:58]] ↳ TmsCore.TerminalManagement.PushLogSweeper.sweep/0, at: lib/tms_core/terminal_management/push_log_sweeper.ex:52 2026-11-06 11:24:24.322 [debug] QUERY OK source="config_file_versions" db=0.5ms queue=0.8ms idle=76.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:24:24.329 [debug] QUERY OK source="parameter_templates" db=0.4ms queue=1.6ms idle=33.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:24:24.371 [debug] QUERY OK source="tms_terminals" db=2.7ms queue=1.8ms idle=44.3ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 2026-11-06 11:24:24.379 [debug] QUERY OK source="filter_usage" db=0.4ms queue=0.5ms idle=49.5ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 2026-11-06 11:24:29.528 [debug] heartbeat in: 28260702280001 (1007 bytes) 2026-11-06 11:24:29.536 [debug] serial=28260702280001 event=heartbeat heartbeat: 28260702280001 MoreFun SR800 status=online battery=49 network=online cpu=0 | app 3.9.0, param 1.0.0, emv 1.0.1, keys none 2026-11-06 11:24:29.539 [debug] serial=28260702280001 event=heartbeat StatusIntake: 28260702280001 (MoreFun SR800) gaps: keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.0 -> target 3.8.5) 2026-11-06 11:24:29.560 [debug] serial=28260702280001 event=push QUERY OK source="tms_terminals" db=0.3ms queue=0.4ms idle=296.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["28260702280001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:24:29.633 [debug] serial=28260702280001 config_type=application event=push QUERY OK source="parameter_push_logs" db=33.4ms queue=1.4ms idle=285.1ms SELECT TRUE FROM `parameter_push_logs` AS p0 WHERE ((((p0.`terminal_id` = ?) AND (p0.`config_type` = ?)) AND (p0.`inserted_at` >= ?)) AND p0.`status` IN ('pending','sent')) LIMIT 1 [64, "application", ~N[2026-11-06 06:54:29]] ↳ anonymous fn/6 in TmsCore.TerminalManagement.PushLane.Worker.handle_cast/2, at: lib/tms_core/terminal_management/push_lane/worker.ex:87 2026-11-06 11:24:30.329 [debug] QUERY OK source="tms_terminals" db=0.8ms idle=58.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["28260702280001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:24:30.336 [debug] QUERY OK db=0.2ms idle=13.0ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:24:30.356 [debug] QUERY OK db=0.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [64, "organization_id", "2026-11-06T15:23:47Z", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:24:30.359 [debug] QUERY OK source="tms_terminal_status_items" db=0.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T15:23:47Z", "online", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "status", 307926, "Battery level", "2026-11-06T15:23:47Z", "49", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "battery", 307926, "Network connectivity", "2026-11-06T15:23:47Z", "online", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "network", 307926, "CPU usage percentage", "2026-11-06T15:23:47Z", "0", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "cpu", 307926, "Current parameters version", "2026-11-06T15:23:47Z", "1.0.0", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "parameter_config", 307926, "Current EMV config version", "2026-11-06T15:23:47Z", "1.0.1", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "emv_config", 307926, "Current keys config version", "2026-11-06T15:23:47Z", "", ~N[2026-11-06 07:24:30], ~N[2026-11-06 07:24:30], "keys_config", 307926, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:24:30.394 [debug] QUERY OK db=34.8ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:24:30.401 [debug] QUERY OK source="app_upgrade_device_statuses" db=0.8ms queue=0.6ms idle=70.5ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["28260702280001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:24:30.491 [debug] request_id=65438626 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.3ms queue=0.8ms idle=95.6ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65438626"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:30.500 [debug] request_id=65438626 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:24:30.491475Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "65438626", "status" => "failed", "timestamp" => 1793978628767, "type" => "tms_response"}, request_id: "65438626", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:24:31.149 [debug] request_id=55324323 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=1.0ms idle=746.6ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55324323"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:31.149 [debug] request_id=55324323 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:24:31.149575Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "55324323", "status" => "failed", "timestamp" => 1793978628876, "type" => "tms_response"}, request_id: "55324323", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:24:31.152 [debug] request_id=41874788 serial=28260702280001 event=push QUERY OK source="file_download_logs" db=0.8ms queue=0.1ms idle=660.0ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["41874788"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:31.152 [debug] request_id=41874788 serial=28260702280001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:24:31.152743Z], response: %{"error_code" => "ERR_BAD_REQUEST", "message" => "Missing downloadUrl", "requestId" => "41874788", "status" => "failed", "timestamp" => 1793978628988, "type" => "tms_response"}, request_id: "41874788", error_message: "ERR_BAD_REQUEST: Missing downloadUrl", device_serial: "28260702280001"} 2026-11-06 11:24:34.359 [debug] QUERY OK source="tms_terminals" db=40.5ms queue=0.4ms idle=35.4ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "SR800", ~N[2026-11-06 07:24:29], "MoreFun", "3.9.0", "1.0.0", "1.0.0", "1.0.1", "", 64] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:24:45.834 [debug] heartbeat in: 98251226730001 (1196 bytes) 2026-11-06 11:24:45.834 [debug] serial=98251226730001 event=heartbeat heartbeat: 98251226730001 MoreFun MF919 status=online battery=33 network=online cpu=0 | app 3.9.3-SNAPSHOT, param none, emv none, keys none 2026-11-06 11:24:45.834 [debug] serial=98251226730001 event=heartbeat StatusIntake: 98251226730001 (MoreFun MF919) gaps: parameter missing (device none -> target 1.0.0), emv_config missing (device none -> target 1.0.1), keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.3-SNAPSHOT -> target 3.8.5) 2026-11-06 11:24:45.838 [debug] serial=98251226730001 event=push QUERY OK source="tms_terminals" db=3.3ms idle=523.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:24:45.852 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_template_values" db=0.6ms queue=0.5ms idle=491.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/6, at: lib/tms_core/terminal_management/auto_push_service.ex:93 2026-11-06 11:24:45.863 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_definitions" db=1.0ms queue=0.7ms idle=22.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_config_push/6, at: lib/tms_core/terminal_management/auto_push_service.ex:93 2026-11-06 11:24:45.869 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_terminal" db=0.5ms queue=0.6ms idle=15.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:175 2026-11-06 11:24:45.905 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_merchant" db=0.7ms queue=31.9ms idle=9.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:186 2026-11-06 11:24:45.908 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK db=1.2ms queue=1.8ms idle=1808.9ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] 2026-11-06 11:24:45.912 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="pos_terminal_data" db=0.4ms queue=0.5ms idle=41.6ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:272 2026-11-06 11:24:45.915 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK source="address" db=0.3ms queue=0.5ms idle=10.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:88 2026-11-06 11:24:45.964 [debug] serial=98251226730001 config_type=parameter event=push QUERY OK db=36.3ms queue=0.6ms idle=14.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`config_type`,`file_size`,`log_time`,`file_path`,`terminal_id`,`template_id`,`push_type`,`parameters_sent`,`device_vendor`,`device_model`,`version_sent`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "10c8380498183704e8d05cf1b8acbd7163d9d0a084d325a446d9ef8f67936189", 7458, "parameter", 930, ~U[2026-11-06 07:24:45Z], "priv/ota/98251226730001/params.zip", 33, 10, "full", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "240", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", ...}, "MoreFun", "MF919", "1.0.0", "missing_version", ~N[2026-11-06 07:24:45], ~N[2026-11-06 07:24:45]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:406 2026-11-06 11:24:45.965 [debug] serial=98251226730001 config_type=parameter event=push MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/98251226730001/params.zip", "requestId" => 7458, "type" => "tms_command", "version" => "1.0.0"} 2026-11-06 11:24:45.965 [debug] request_id=7458 serial=98251226730001 config_type=parameter event=push push out: UPDATE_PARAMS payload {"command":"UPDATE_PARAMS","downloadUrl":"http://demo.ctrmv.com:4059/ota/98251226730001/params.zip","requestId":7458,"type":"tms_command","version":"1.0.0"} 2026-11-06 11:24:46.027 [debug] request_id=7458 serial=98251226730001 config_type=parameter event=push QUERY OK source="parameter_push_logs" db=57.6ms queue=1.2ms idle=52.8ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`sent_at` = ? WHERE ((p0.`id` = ?) AND (p0.`status` = 'pending')) ["sent", ~U[2026-11-06 07:24:45Z], 83465] ↳ TmsCore.TerminalManagement.AutoPushService.publish_and_log/6, at: lib/tms_core/terminal_management/auto_push_service.ex:776 2026-11-06 11:24:46.085 [debug] serial=98251226730001 config_type=emv_config event=push QUERY OK db=53.2ms queue=0.3ms idle=67.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`config_type`,`file_size`,`log_time`,`file_path`,`terminal_id`,`push_type`,`device_vendor`,`device_model`,`version_sent`,`trigger_reason`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "606a095977377064cc7caf05ee719ecd900044d5e6b00733519810ae01d6af5d", 164, "emv_config", 17947, ~U[2026-11-06 07:24:46Z], "priv/ota/l3/6/l3config.zip", 33, "full", "MoreFun", "MF919", "1.0.1", "missing_version", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/5, at: lib/tms_core/terminal_management/auto_push_service.ex:512 2026-11-06 11:24:46.085 [debug] serial=98251226730001 config_type=emv_config event=push MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4059/ota/l3/6/l3config.zip", "requestId" => 164, "type" => "tms_command", "version" => "1.0.1"} 2026-11-06 11:24:46.086 [debug] request_id=164 serial=98251226730001 config_type=emv_config event=push push out: UPDATE_L3_CONFIG payload {"command":"UPDATE_L3_CONFIG","downloadUrl":"http://demo.ctrmv.com:4059/ota/l3/6/l3config.zip","requestId":164,"type":"tms_command","version":"1.0.1"} 2026-11-06 11:24:46.114 [debug] request_id=164 serial=98251226730001 config_type=emv_config event=push QUERY OK source="parameter_push_logs" db=27.7ms queue=0.1ms idle=59.0ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`sent_at` = ? WHERE ((p0.`id` = ?) AND (p0.`status` = 'pending')) ["sent", ~U[2026-11-06 07:24:46Z], 83466] ↳ TmsCore.TerminalManagement.AutoPushService.publish_and_log/6, at: lib/tms_core/terminal_management/auto_push_service.ex:776 2026-11-06 11:24:46.129 [debug] request_id=55326147 serial=98251226730001 event=push push result: 98251226730001 request_id=55326147 accepted, download starting 2026-11-06 11:24:46.129 [debug] request_id=55326147 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms idle=14.7ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55326147"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:46.130 [debug] request_id=55326147 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:24:46.130739Z], response: %{"message" => "L3 configuration update started", "requestId" => "55326147", "status" => "initiated", "timestamp" => 1793949886013, "type" => "tms_response"}, request_id: "55326147", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:24:46.143 [debug] serial=98251226730001 config_type=application event=push QUERY OK source="parameter_push_logs" db=28.4ms idle=29.8ms SELECT TRUE FROM `parameter_push_logs` AS p0 WHERE ((((p0.`terminal_id` = ?) AND (p0.`config_type` = ?)) AND (p0.`inserted_at` >= ?)) AND p0.`status` IN ('pending','sent')) LIMIT 1 [33, "application", ~N[2026-11-06 06:54:46]] ↳ anonymous fn/6 in TmsCore.TerminalManagement.PushLane.Worker.handle_cast/2, at: lib/tms_core/terminal_management/push_lane/worker.ex:87 2026-11-06 11:24:46.272 [debug] request_id=7458 serial=98251226730001 event=push push result: 98251226730001 request_id=7458 accepted, download starting 2026-11-06 11:24:46.273 [debug] request_id=7458 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms idle=142.6ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["7458"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:46.273 [debug] request_id=7458 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:24:46.273201Z], response: %{"message" => "Parameter update started", "requestId" => "7458", "status" => "initiated", "timestamp" => 1793949886044, "type" => "tms_response"}, request_id: "7458", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:24:46.276 [debug] request_id=164 serial=98251226730001 event=push push result: 98251226730001 request_id=164 accepted, download starting 2026-11-06 11:24:46.277 [debug] request_id=164 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.5ms idle=133.1ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["164"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:46.277 [debug] request_id=164 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "in_progress", timestamp: ~U[2026-11-06 07:24:46.277769Z], response: %{"message" => "L3 configuration update started", "requestId" => "164", "status" => "initiated", "timestamp" => 1793949886148, "type" => "tms_response"}, request_id: "164", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:24:46.417 [debug] QUERY OK source="tms_terminals" db=0.5ms idle=101.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730001"] ↳ TmsCore.TerminalManagement.ensure_terminal/3, at: lib/tms_core/terminal_management.ex:64 2026-11-06 11:24:46.418 [debug] QUERY OK db=0.2ms idle=54.2ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:24:46.419 [debug] QUERY OK db=0.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-11-06T07:24:45Z", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:24:46.461 [debug] QUERY OK source="tms_terminal_status_items" db=0.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T07:24:45Z", "online", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "status", 307928, "Battery level", "2026-11-06T07:24:45Z", "33", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "battery", 307928, "Network connectivity", "2026-11-06T07:24:45Z", "online", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "network", 307928, "CPU usage percentage", "2026-11-06T07:24:45Z", "0", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "cpu", 307928, "Current parameters version", "2026-11-06T07:24:45Z", "", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "parameter_config", 307928, "Current EMV config version", "2026-11-06T07:24:45Z", "", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "emv_config", 307928, "Current keys config version", "2026-11-06T07:24:45Z", "", ~N[2026-11-06 07:24:46], ~N[2026-11-06 07:24:46], "keys_config", 307928, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:24:46.571 [debug] QUERY OK db=109.6ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:24:46.573 [debug] QUERY OK source="app_upgrade_device_statuses" db=0.7ms idle=154.3ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:24:49.344 [debug] QUERY OK source="tms_terminals" db=23.3ms idle=1000.1ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "MF919", ~N[2026-11-06 07:24:45], "MoreFun", "3.9.3-SNAPSHOT", "", "", "", "", 33] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:24:49.930 [debug] request_id=164 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms idle=585.1ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["164"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:49.930 [debug] request_id=164 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-11-06 07:24:49.930557Z], response: %{"message" => "Update success: emv_config v1.0.1", "requestId" => "164", "status" => "success", "timestamp" => 1793949889787, "type" => "tms_response"}, request_id: "164", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:24:51.310 [debug] request_id=7458 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.4ms queue=0.1ms idle=935.0ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["7458"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:51.310 [debug] request_id=7458 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-11-06 07:24:51.310708Z], response: %{"message" => "Update success: parameter_config v1.0.0", "requestId" => "7458", "status" => "success", "timestamp" => 1793949891158, "type" => "tms_response"}, request_id: "7458", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:24:52.492 [debug] request_id=55326147 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.5ms idle=161.0ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["55326147"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:24:52.492 [debug] request_id=55326147 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "failed", timestamp: ~U[2026-11-06 07:24:52.492791Z], response: %{"message" => "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", "requestId" => "55326147", "status" => "failed", "timestamp" => 1793949892375, "type" => "tms_response"}, request_id: "55326147", error_message: "Download failed for emv_config: Failed to connect to demo.ctrmv.com/78.47.213.209:4019", device_serial: "98251226730001"} 2026-11-06 11:25:00.412 [debug] heartbeat in: 98251226730001 (1206 bytes) 2026-11-06 11:25:00.412 [debug] serial=98251226730001 event=heartbeat heartbeat: 98251226730001 MoreFun MF919 status=online battery=33 network=online cpu=0 | app 3.9.3-SNAPSHOT, param 1.0.0, emv 1.0.1, keys none 2026-11-06 11:25:00.413 [debug] serial=98251226730001 event=heartbeat StatusIntake: 98251226730001 (MoreFun MF919) gaps: keys_config missing (device none -> target 1.0.0), application outdated (device 3.9.3-SNAPSHOT -> target 3.8.5) 2026-11-06 11:25:00.413 [debug] serial=98251226730001 event=push PushLane: skipping keys_config re-push for 98251226730001 (push still in flight) 2026-11-06 11:25:00.413 [debug] serial=98251226730001 event=push PushLane: skipping application re-push for 98251226730001 (push still in flight) 2026-11-06 11:25:00.588 [debug] QUERY OK db=0.6ms idle=233.0ms begin [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:25:00.590 [debug] QUERY OK db=1.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [33, "organization_id", "2026-11-06T07:25:00Z", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00]] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:25:00.593 [debug] QUERY OK source="tms_terminal_status_items" db=2.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`inserted_at`,`updated_at`,`itemkey`,`status_log_id`) VALUES (?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?),(?,?,?,?,?,?,?) ["Terminal status update", "2026-11-06T07:25:00Z", "online", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "status", 307929, "Battery level", "2026-11-06T07:25:00Z", "33", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "battery", 307929, "Network connectivity", "2026-11-06T07:25:00Z", "online", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "network", 307929, "CPU usage percentage", "2026-11-06T07:25:00Z", "0", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "cpu", 307929, "Current parameters version", "2026-11-06T07:25:00Z", "1.0.0", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "parameter_config", 307929, "Current EMV config version", "2026-11-06T07:25:00Z", "1.0.1", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "emv_config", 307929, "Current keys config version", "2026-11-06T07:25:00Z", "", ~N[2026-11-06 07:25:00], ~N[2026-11-06 07:25:00], "keys_config", 307929, "Current application version", ...] ↳ anonymous fn/3 in Ecto.Adapters.SQL.checkout_or_transaction/4, at: lib/ecto/adapters/sql.ex:1473 2026-11-06 11:25:00.692 [debug] QUERY OK db=98.4ms commit [] ↳ TmsCore.TerminalManagement.HeartbeatBuffer.persist_chunk/1, at: lib/tms_core/terminal_management/heartbeat_buffer.ex:327 2026-11-06 11:25:00.693 [debug] QUERY OK source="app_upgrade_device_statuses" db=0.4ms idle=288.8ms SELECT a0.`id`, a0.`config_id`, a0.`device_id`, a0.`device_sn`, a0.`vendor`, a0.`model`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`update_result`, a0.`status`, a0.`remark`, a0.`finish_time`, a0.`pushed_time`, a0.`retry_count`, a0.`inserted_at`, a0.`updated_at` FROM `app_upgrade_device_statuses` AS a0 WHERE ((a0.`device_sn` = ?) AND a0.`status` IN ('pending','pushed')) ["98251226730001"] ↳ TmsCore.TerminalManagement.AppUpgradeService.maybe_repush_for_device/1, at: lib/tms_core/terminal_management/app_upgrade_service.ex:148 2026-11-06 11:25:00.733 [debug] request_id=65439938 serial=98251226730001 event=push QUERY OK source="file_download_logs" db=0.5ms idle=40.9ms SELECT f0.`id`, f0.`device_serial`, f0.`request_id`, f0.`command`, f0.`file_name`, f0.`file_category`, f0.`download_url`, f0.`file_size`, f0.`status`, f0.`error_code`, f0.`error_message`, f0.`sent_at`, f0.`responded_at`, f0.`command_payload`, f0.`response_payload`, f0.`file_download_job_id`, f0.`inserted_at`, f0.`updated_at` FROM `file_download_logs` AS f0 WHERE (f0.`request_id` = ?) ORDER BY f0.`inserted_at` DESC LIMIT 1 ["65439938"] ↳ TmsCore.TerminalManagement.record_file_download_response/2, at: lib/tms_core/terminal_management.ex:782 2026-11-06 11:25:00.734 [debug] request_id=65439938 serial=98251226730001 event=push File download response log: %{command: "file_download_response", status: "completed", timestamp: ~U[2026-11-06 07:25:00.734075Z], response: %{"message" => "Already up to date: 1.0.1", "requestId" => "65439938", "status" => "success", "timestamp" => 1793949900612, "type" => "tms_response"}, request_id: "65439938", error_message: nil, device_serial: "98251226730001"} 2026-11-06 11:25:09.384 [debug] QUERY OK source="tms_terminals" db=58.5ms idle=940.5ms UPDATE `tms_terminals` AS t0 SET t0.`status` = ?, t0.`model` = ?, t0.`updated_at` = ?, t0.`vendor` = ?, t0.`app_version` = ?, t0.`data_version` = ?, t0.`parameter_config_version` = ?, t0.`emv_config_version` = ?, t0.`keys_config_version` = ? WHERE (t0.`id` = ?) ["online", "MF919", ~N[2026-11-06 07:25:00], "MoreFun", "3.9.3-SNAPSHOT", "1.0.0", "1.0.0", "1.0.1", "", 33] ↳ TmsCore.TerminalManagement.TerminalStateCache.flush_one/3, at: lib/tms_core/terminal_management/terminal_state_cache.ex:208 2026-11-06 11:25:24.341 [debug] QUERY OK source="config_file_versions" db=0.9ms idle=749.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE (c0.`is_active` = TRUE) ORDER BY c0.`updated_at`, c0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:94 2026-11-06 11:25:24.343 [debug] QUERY OK source="parameter_templates" db=1.6ms idle=0.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (p0.`is_active` = TRUE) ORDER BY p0.`updated_at`, p0.`id` [] ↳ TmsCore.TerminalManagement.TargetVersionCache.load/0, at: lib/tms_core/terminal_management/target_version_cache.ex:101 2026-11-06 11:25:24.506 [debug] QUERY OK source="parameter_push_logs" db=179.9ms queue=0.4ms idle=782.3ms UPDATE `parameter_push_logs` AS p0 SET p0.`status` = ?, p0.`error_message` = ?, p0.`updated_at` = ? WHERE ((p0.`status` = 'sent') AND (p0.`inserted_at` < ?)) ["timed_out", "no device acknowledgment within 5 min", ~N[2026-11-06 07:25:24], ~N[2026-11-06 07:20:24]] ↳ TmsCore.TerminalManagement.PushLogSweeper.sweep/0, at: lib/tms_core/terminal_management/push_log_sweeper.ex:52